package com.example.controller.exception;

import com.example.entity.RestBean;
import jakarta.validation.ValidationException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 作者:xuSen
 * 日期2025/4/19 14:52
 */
/**
 * 全局异常处理控制器
 * 用于捕获和处理全局范围内的异常，以便统一响应格式和简化错误处理
 */
@Slf4j
@RestControllerAdvice
public class ValidationController {

    /**
     * 处理验证异常
     * 当系统抛出ValidationException时，此方法将被调用以处理异常
     *
     * @param e 验证异常的实例，包含异常的具体信息
     * @return 返回一个失败的RestBean响应，状态码为400，表示请求有误
     */
    @ExceptionHandler(ValidationException.class)
    public RestBean<Void> validationException(ValidationException e) {
        // 记录错误日志，包括异常的类名和错误信息
        log.error("错误：[{},{}]",e.getClass().getName(),e.getMessage());
        // 返回一个表示失败的响应，状态码为400，并提示请求有误
        return RestBean.failure(400, "请求有误");
    }
}

